////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//		File Name		:		CDocksLevelState.h
//
//		Author			:		Kevin Jordan
//
//		Purpose			:		A header for all functions and members of the Docks state
//
//		Dates			:		Written( March 5, 2011 ) by Kevin Jordan		LastUpdate( March 5, 2011  ) by Kevin Jordan 
//	
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef CDOCKS_LEVEL_STATE_H_
#define CDOCKS_LEVEL_STATE_H_
#include "IBaseState.h"
#include "IListener.h"

class CDocksLevelState : public IBaseState, public IListener
{


private:


	CDocksLevelState(const CDocksLevelState& copy);
	CDocksLevelState& operator=(const CDocksLevelState& assign);
	CDocksLevelState();
	~CDocksLevelState();

	unsigned int m_nNumOfDeadEnemies, m_nMaxEnemies;


	bool IsBossDead;
	bool SpawnBoss;

	bool SaveBeforeExit;
	bool m_bWinGame, m_bGameOver;
	float fBucketTE;

	int ImageID;



public:




	static CDocksLevelState* GetInstance();	
	void Render();
	bool Input();
	void Update(float fElapsedTIme);
	void Exit();
	void Enter();

	int GetDeadEnemies()		{ return m_nNumOfDeadEnemies; }
	bool GetBossStatus()		{ return IsBossDead; }
	int GetMaxEnemies()			{ return m_nMaxEnemies; }

	void SetDeadEnemies( int newEnemyCount )	{ m_nNumOfDeadEnemies = newEnemyCount;	}
	void SetBossStatus( bool newBossStatus	)	{  IsBossDead = newBossStatus; }
	void SetMaxEnemies( int newMaxEnemies	)	{ m_nMaxEnemies = newMaxEnemies; }	

	void HandleEvent(CEvent* pEvent);





};
#endif
